package 笔试题;

import java.util.*;

public class lk_2007 {
    public static void main(String[] args) {

    }
    public int[] findOriginalArray(int[] changed) {
        Arrays.sort(changed);
        Map<Integer,Integer> l = new HashMap<>();
        List<Integer> zz = new ArrayList<>();
        int k = 0;
        for(int i:changed){
            Integer z = l.get(i);
            if((i&1)!=0){
                zz.add(i);
                if(z!=null){
                    l.put(i,z+1);
                }else{
                    l.put(i,1);
                }
            }else{
                k = i>>1;
                Integer integer = l.get(k);
                if(integer!=null){
                    if(integer>0){
                        l.put(k,integer-1);
                    }else{
                        l.put(i,z==null?1:z+1);
                        zz.add(i);
                    }
                }else{
                    l.put(i,z==null?1:z+1);
                    zz.add(i);
                }
            }



        }
        if (zz.size() == (changed.length>>1)){
            int[] re = new int[zz.size()];
            for (int i=0;i<zz.size();i++){
                re[i] = zz.get(i);
            }
            return re;
        }else {
            return new int[]{};
        }

    }
}
